package part14;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author wcj
 * @Date 2021/5/26 15:57
 * @Version 1.0
 */
public class Part149 {
    private static List<Class<? extends Pet>> types = Collections.unmodifiableList(Arrays.asList(Dog.class, Cat.class));

    /**
     * class对象的isAssignableForm（）方法，直接进行Class对象类型的判断
     * 和instanceof以及isInstance()不同的是，前两者是判断类型名是否符合
     * isAssignableForm()是判断Class对象是否符合
     *
     * @param args
     */
    public static void main(String[] args) {
        Class<?> dogClass = Dog.class;
        for (Class<? extends Pet> type : types) {
            if (!dogClass.isAssignableFrom(type)) {
                System.out.println(type.getSimpleName());
            }
        }
    }
}
